package com.dylearn.config;

import com.dylearn.utils.quartz.FirstQuartz;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class QuartzConfig {
    //这个是定时器的配置类
    //里面有两个东西需要声明

    //工作明细 -> 绑定具体的工作
    @Bean
    public JobDetail workDetails() {
        //创建一个工作明细 并指定具体的工作类 FirstQuartz
        //storeDurably 表示 不使用的时候不会被垃圾回收机制回收掉
        return JobBuilder.newJob(FirstQuartz.class).storeDurably().build();
    }

    //触发器 -> 绑定具体工作明细
    @Bean
    public Trigger triggerToWorkDetails() {

        //"0 0 0 0 0 ?" 日期表达式 -> 0秒 0分 0时 0天 0月 0星期 一般 天 与 星期 不会一起使用 不使用 用 ? 表示，* 表示任意
        //这个是调度器
        ScheduleBuilder schedule = CronScheduleBuilder.cronSchedule("0/15 * * * * ?");//这表示每 15 秒执行一次
        //绑定对应的工作明细                         工作明细方法名称    执行周期设置
        return TriggerBuilder.newTrigger().forJob(workDetails()).withSchedule(schedule).build();//这里调用工作明细方法
    }

}
